// src/utils/request.js
import axios from 'axios';

// 创建 Axios 实例
const service = axios.create({
  baseURL: import.meta.env.VITE_API_BASE_URL, // 从环境变量获取基础 URL
  timeout: 15000, // 请求超时时间
  headers: {
    'Content-Type': 'application/json;charset=UTF-8'
  }
});
console.log("API URL:", import.meta.env.VITE_API_BASE_URL);

// 请求拦截器
service.interceptors.request.use(
  (config) => {
    // 1. 添加认证 Token
    const token = localStorage.getItem('access_token');
    if (token) {
      config.headers = config.headers || {};
      config.headers.Authorization = `Bearer ${token}`;
    }

    // 2. 特殊请求处理（如文件上传）
    if (config.data instanceof FormData) {
      config.headers['Content-Type'] = 'multipart/form-data';
    }

    // 3. 添加请求标识（用于取消请求）
    config.headers['X-Request-ID'] = Date.now();

    return config;
  },
  (error) => {
    // 请求错误处理
    console.error('Request Error:', error);
    return Promise.reject(error);
  }
);

// 响应拦截器

// 添加 GET 请求方法
export const get = async (url, params = {}) => {
  const {data}= await service({
    url,
    method: 'get',
    params
  })
  return data
}
export const post = async (url, params = {}) => {
   const {data} =await service({
    url,
    method: 'post',
    params
  })
    return data
}

// // 添加 fetchWrapper 封装
// export const fetchWrapper = {
//   get: (url, params) => get(url, params),
//   post: (url, data) => service.post(url, data),
//   // 其他方法...
// }
